package cn.iocoder.yudao.module.system.service.cp;

import cn.iocoder.yudao.module.system.controller.admin.cp.vo.CheckinMonthDataReqVO;
import cn.iocoder.yudao.module.system.controller.admin.cp.vo.CorrectionReq;
import cn.iocoder.yudao.module.system.controller.admin.cp.vo.NoticeMessageForm;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.cp.bean.message.WxCpMessageSendResult;
import me.chanjar.weixin.cp.bean.oa.WxCpCheckinData;
import me.chanjar.weixin.cp.bean.oa.WxCpCheckinMonthData;

import java.util.Date;
import java.util.List;

/**
 * 企微 Service 接口
 *
 * @author pg
 */
public interface CpService {

    Boolean createDept(Integer tenantId);

    Boolean createUser(Integer tenantId, Long id);

    WxCpMessageSendResult sendMessage(Integer tenantId, NoticeMessageForm form) throws WxErrorException;

    List<WxCpCheckinData> getCheckInData(Integer tenantId, Integer openCheckinDataType, Date startTime, Date endTime, List<String> userIdList) throws WxErrorException;

    List<WxCpCheckinMonthData> getCheckinMonthData(Integer tenantId, CheckinMonthDataReqVO reqVO) throws WxErrorException;

    void punchCorrection(Integer tenantId, CorrectionReq req) throws WxErrorException;
}
